package main

import (
	"log"
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {

	engine := gin.Default()
	engine.GET("/getCustomerInfo", MyHandle(), func(context *gin.Context) {
		sessionId, exists := context.Get("session-id")
		if !exists {
			log.Println("没有获取到session")
		}
		log.Printf("sessionId =%s\n", sessionId)
		context.JSON(http.StatusOK, gin.H{
			"name": "张三",
		})
	})
	engine.Run(":9000")

}

// MyHandle 有点类springboot中的拦截器
func MyHandle() gin.HandlerFunc {
	return func(context *gin.Context) {
		context.Set("session-id", "ruixule-session")
		// 进行下一步，类似于java中的拦截器中的 preHandle 方法返回true
		context.Next()
		// 进行下一步，类似于java中的拦截器中的 preHandle 方法返回false
		// context.Abort()
	}
}
